showing 1 game
name | publisher(developer) | year arrow_downward | description | |
---|---|---|---|---|
Monoply | Digital Equipment Computer Users' Society | 1970 | It is the version of Monopoli, written in BASIC. MNOPLY is a simulation of the most popular board game in the world, Monopoly. It varies from the actual game only in that two players are the maximum number that can play.***[spoiler=show source code;hide source code]10 DIM P$(41),S(41),R(41),V(41),J(41),M(41),K(21),L(41),C(41),B(41),O(41) 20 PRINT "HOW MANY PLAYERS"; 30 PRINT "(TYPE '0' FOR INSTRUCTIONS)"; 40 INPUT N 50 IF N>0 THEN 80 60 GOSUB 8580 70 GOTO 20 80 IF N<11 THEN 110 90 PRINT" NO MORE THAN 10 CAN PLAY" 100 GOTO 20 110 FOR Q5 = 1 TO N 120 PRINT "NAME"; 130 REM THIS PART STARTED FROM 151-2 140 REM A(B)=0 FOR HUMAN, 1 FOR COMPUTER 150 GOTO 210 160 LET N$(Q5)="COMPUTER" 170 A(Q5)=1 180 W7=W7+1 190 REM W7 IS # OF COMPUTER PLAYERS 200 GOTO 360 210 INPUT N$(Q5) 220 IF N$(Q5)="COMPUTER" THEN 160 230 IF N$(Q5)="YOU" THEN 160 240 IF N$(Q5)<>"WHAT" THEN 260 250 GOTO 330 260 Z7=1 270 FOR O1=1 TO Q5-1 280 IF M$(O1)<>N$(Q5) THEN 310 290 PRINT "NAME IN USE, INPUT ANOTHER" 300 GOTO 120 310 NEXT O1 315 M$(Q5)=N$(Q5) 320 GOTO 360 330 PRINT "TYPE PLAYERS NAME (ONE ONLY AT A TIME)" 340 PRINT "'YOU' IF THE COMPUTER IS PLAYING." 350 GOTO 120 360 T(Q5)=1500 370 NEXT Q5 380 IF Z7=1 THEN 410 390 A7=1 400 A8=1 410 FOR B4= 1 TO 40 420 REM READS DATA, P$=NAME,S IS TYPE,R IS RENT, AND C IS COST 430 READ P$(B4),S(B4) 440 REM B3= B= PLAYER NUMBER 450 IF S(B4)>8 THEN 470 460 GOTO 490 470 READ L(B4),C(B4) 480 R(B4)=L(B4) 490 NEXT B4 500 I0=1 510 J0=200 520 LET I=I+1 530 PRINT 540 PRINT "TURN";I 550 PRINT 560 GOSUB 6910 570 IF I0=0 THEN 600 580 GOTO 2780 590 I0=0 600 FOR B3=1 TO N 610 B=B3 620 IF A(B)=1 THEN 660 630 O$="YOU" 640 I$="YOUR" 650 GOTO 690 660 O$="I" 670 I$="MY" 680 REM THIS SETS O AND I$ FOR COMPUTER OR HUMAN 690 R5=0 700 U=0 710 IF Q(B)=1 THEN 3720 720 IF A(B)=1 THEN 780 730 IF N$(B)<>"ME" THEN 760 740 PRINT "YOUR TURN" 750 GOTO 820 760 PRINT N$(B3);"'S TURN" 770 GOTO 820 780 PRINT "MY TURN"; 790 IF W7=1 THEN 810 800 PRINT "(PLAYER";B;")"; 810 PRINT 820 IF T(B)>0 THEN 840 830 GOSUB 9010 840 IF Q(B)=1 THEN 3720 850 IF E(B)=0 THEN 880 860 B9=B3 870 GOSUB 4770 880 IF T(B)> 100 THEN 900 890 GOSUB 5710 900 IF N(B)>0 THEN 920 910 IF X(B)=0 THEN 940 920 GOSUB 6230 930 GOTO 940 940 B2=INT(RND(1)*6)+1 950 B1=INT(RND(1)*6)+1 960 PRINT "THE DICE ARE ON";B1;" AND ";B2 970 IF B1=B2 THEN 1010 980 IF J(B)=1 THEN 1150 990 G(B)=0 1000 GOTO 1510 1010 G(B)= G(B)+1 1020 REM G(B) IS NUMBER OF DOUBLES 1030 IF G(B)>=3 THEN 1100 1040 IF J(B)=1 THEN1070 1050 REM J(B)= 1IF IN JAIL, =0 IF OUT OF JAIL 1060 GOTO 1510 1070 J(B)=0 1080 PRINT "OUT OF JAIL " 1090 GOTO 2760 1100 J(B)=1 1110 PRINT "3 DOUBLES . IN JAIL" 1120 P(B)=10 1130 GOTO 2770 1140 G(B)=0 1150 IF F(B)>0 THEN 1170 1160 GOTO 1290 1170 PRINT" IN JAIL WILL ";O$;" USE ";I$;" JAILCARD"; 1180 IF A(B)=0 THEN 1210 1190 PRINT "?* YES *" 1200 GOTO 1260 1210 INPUT X$ 1220 IFLEFT$(X$,1)="N"THEN1290 1230 IFLEFT$(X$,1)="Y"THEN1260 1240 PRINT "YES OR NO"; 1250 GOTO 1210 1260 F(B)=F(B)-1 1270 D(B)=0 1280 GOTO 1490 1290 IF D(B)<3 THEN 1320 1300 PRINT "THIRD TIME IN JAIL.";O$;" MUST PAY $50." 1310 GOTO 1480 1320 PRINT"IN JAIL. WILL ";O$;" PAY $50"; 1330 IF A(B)=0 THEN 1410 1340 D(B)=D(B)+1 1350 IF D(B)=3 THEN 1390 1360 IF T(B)>200 THEN 1390 1370 PRINT"? *NO*" 1380 GOTO 2770 1390 PRINT"? *YES*" 1400 GOTO 1480 1410 P(B)=P(B)+1 1420 INPUT A$ 1430 P(B)=10 1440 IFLEFT$(A$,1)="Y"THEN1480 1450 IFLEFT$(A$,1)="N"THEN2770 1460 PRINT "TYPE 'YES' OR 'NO'"; 1470 GOTO 1290 1480 LET T(B)= T(B)-50 1490 J(B)=0 1500 D(B)=0 1510 P(B)= P(B)+B1+B2 1520 R5=0 1530 U=0 1540 P=P(B) 1550 IF P(B)>40 THEN 1570 1560 GOTO 1610 1570 LET P(B)= P(B)- 40 1580 P=P(B) 1590 T(B)= T(B)+200 1600 PRINT "PASSED GO!! COLLECTED $200 " 1610 IF S(P(B))>10 THEN 1640 1620 GOTO 2290 1630 P=P(B3) 1640 IF V(P(B))>B THEN 2040 1650 REM V(--) IS THE OWNER OF THE PROPERTY 1660 IF V(P(B))<B THEN 1680 1670 GOTO 1700 1680 IF V(P(B))>0 THEN 2040 1690 GOTO 1760 1700 Y9=P(B) 1710 IF A(B)=0 THEN 1740 1720 PRINT "I AM ON ";P$(P);" WHICH I OWN." 1730 GOTO 2760 1740 PRINT "YOU ARE ON ";P$(Y9); " WHICH YOU OWN " 1750 GOTO 2760 1760 LET P=P(B3) 1770 IF A(B)=0 THEN 1800 1780 PRINT P$(P);" IS AVAILABLE AT PRICE $";C(P);" WILL I BUY IT"; 1790 GOTO 1820 1800 PRINT "WILL YOU BUY ";P$(P);" FOR $";C(P); 1810 IF A(B)=0 THEN 1870 1820 IF T(B)<200 +C(P) THEN 1850 1830 PRINT "? *YES*" 1840 GOTO 1920 1850 PRINT "? *NO*" 1860 GOTO 2760 1870 INPUT A$ 1880 IFLEFT$(A$,1)="Y" THEN 1920 1890 IFLEFT$(A$,1)="N"THEN2760 1900 PRINT"YES OR NO"; 1910 GOTO 1870 1920 LET T(B)= T(B)- C(P(B)) 1930 IF R5=1 THEN 1950 1940 GOTO 1960 1950 W(B)=W(B)+1 1960 IF U=1 THEN 1980 1970 GOTO 1990 1980 LET U(B)= U(B)+1 1990 V(P(B))= B 2000 U8=0 2010 GOSUB 4260 2020 GOTO 2760 2030 REM THIS IS RENT ROUTINE 2040 IF R5=0 THEN 2070 2050 R(P(B))= 25* W(V(P(B))) 2060 GOTO 8320 2070 IF U=0 THEN 8320 2080 IF U(B)=2 THEN 2110 2090 U3=4 2100 GOTO 2120 2110 U3=10 2120 GOTO 8310 2130 IF A(W8)=0 THEN 2180 2140 PRINT P$(W9); " IS MINE"; 2150 IF W7=1 THEN 2190 2160 PRINT "(PLAYER";W8;")"; 2170 GOTO 2190 2180 PRINT P$(W9);" BELONGS TO "; N$(W8); 2190 IF M(P(B))=1 THEN 2240 2200 PRINT ", RENT IS $ "; R(P(B)) 2210 T(B)=T(B)-R(P(B)) 2220 T(V(P))= T(V(P))+ R(P(B)) 2230 GOTO 2760 2240 PRINT " ,BUT IT IS MORTGAGED" 2250 GOTO 2760 2260 P=P(B3) 2270 T(V(P(B)))= T(V(P(B)))+ R(P(B)) 2280 GOTO 2760 2290 ON S(P(B)) GOTO 2760,2370, 2420,2490,2600,2630,2670,2310,2710,2740 2300 REM FOR UNIQUE SQUARES IT SENDS THE PROGRAM TO THE RIGHT DIRECTION 2310 Y9=P(B) 2320 IF A(B)=0 THEN 2350 2330 PRINT "I AM ON ";P$(Y9);"." 2340 GOTO 2760 2350 PRINT "YOU ARE ON ";P$(Y9) 2360 GOTO 2760 2370 PRINT"COMMUNITY CHEST "; 2380 PRINT "--"; 2390 GOSUB 3750 2400 REM GOES TO CHANCE-COMMUNITY CHEST GOSUB 2410 GOTO 2440 2420 PRINT "CHANCE--"; 2430 GOSUB 3750 2440 IF V0=1 THEN 2460 2450 GOTO 2760 2460 V0=0 2470 R5=1 2480 GOTO 1640 2490 Z2=.1*(T(B)) 2500 IF Z2>0 THEN 2530 2510 PRINT O$;" IS ON INCOME TAX, BUT HAS A NEGATIVE AMOUNT OF MONEY" 2520 GOTO 2760 2530 IF Z2>200 THEN 2570 2540 LET T(B)= T(B)-INT(Z2) 2550 PRINT "INCOME TAX--$";INT(Z2) 2560 GOTO 2760 2570 T(B)= T(B)- 200 2580 PRINT "INCOME TAX-$200" 2590 GOTO 2760 2600 T(B)= T(B)-75 2610 PRINT "LUXURY TAX $75" 2620 GOTO 2760 2630 J(B)=1 2640 P(B)=10 2650 PRINT"GO TO JAIL" 2660 GOTO 2760 2670 PRINT"FREE PARKING-$";J0;"." 2680 T(B)=T(B)+J0 2690 J0=200 2700 GOTO 2760 2710 R5=1 2720 GOTO 1640 2730 GOTO 2760 2740 U=1 2750 GOTO 1630 2760 IF G(B)>0 THEN 940 2770 PRINT 2780 IF A8=-1 THEN 3000 2790 IF A8=0 THEN 2850 2800 IF A8=5 THEN 2830 2810 A8=A8+1 2820 GOTO 3700 2830 A8=1 2840 GOTO3000 2850 PRINT "SUMMARY"; 2860 INPUT A$ 2870 IF A$="AUTO" THEN 2890 2880 GOTO 2910 2890 A8=1 2900 GOTO 3700 2910 IF A$="ALWAYS" THEN 2930 2920 GOTO2950 2930 A8=-1 2940 GOTO 3000 2950 IFLEFT$(A$,1)="N"THEN3700 2960 IFLEFT$(A$,1)="Y"THEN3000 2970 PRINT "'YES' OR 'NO' OR 'AUTO'( GIVES A SUMMARY EVERY FIVE TURNS" 2980 PRINT "AND DOESN'T ASK YOU ANY MORE" 2990 GOTO 2850 3000 GOTO 3010 3010 FOR J8=1 TO N 3020 X=0 3030 T0=0 3040 IF Q(J8)=1 THEN3650 3050 T$=" " 3060 IF A(J8)=1 THEN 3120 3070 IF N$(J8)<>"ME" THEN 3100 3080 PRINT "YOU HAVE $";T(J8); 3090 GOTO 3160 3100 PRINT N$(J8);" HAS $";T(J8); 3110 GOTO 3160 3120 PRINT"I"; 3130 IF W7=1 THEN 3150 3140 PRINT "(PLAYER";J8;")"; 3150 PRINT" HAVE $";T(J8); 3160 FORJ9=1 TO 40 3170 IF V(J9)=J8 THEN 3190 3180 GOTO 3350 3190 IF T$= " " THEN 3210 3200 PRINT ","; T$; 3210 T$= P$(J9) 3220 X=X+C(J9)+B(J9)*INT((S(J9)-10)/2+.5)*50 -M(J9)* .5*C(J9) 3230 IF B(T)=0 THEN 3310 3240 IF B(T)>1 THEN 3270 3250 PRINT "(WITH A HOUSE)"; 3260 GOTO 3310 3270 IF B(T)<5 THEN 3300 3280 PRINT "(WITH A HOTEL)"; 3290 GOTO 3310 3300 PRINT "(WITH";B(T);"HOUSES)"; 3310 IF M(T)=0 THEN 3330 3320 PRINT "(MORTGAGED)"; 3330 T=J9 3340 IF T0=1 THEN 3460 3350 NEXT J9 3360 IF F(J8)>0 THEN 3420 3370 IF T$<>" " THEN 3400 3380 PRINT "." 3390 GOTO 3610 3400 PRINT ", AND ";T$; 3410 GOTO 3440 3420 IF T$=" " THEN3470 3430 PRINT",";T$; 3440 T0=1 3450 GOTO 3230 3460 T0=0 3470 IF F(J8)=0 THEN 3550 3480 IF F(J8)=1 THEN 3520 3490 PRINT ",AND ";F(J8);"JAILCARDS."; 3500 X=X+F(J8)*50 3510 GOTO 3610 3520 PRINT ",AND A JAILCARD."; 3530 X=X+50 3540 GOTO 3610 3550 IF T$=" " THEN3610 3560 K(0)=LEN(T$):FORXE=1TOK(0):K(XE)=ASC(MID$(T$,XE,1)):NEXTXE 3570 IF K(K(0))=46 THEN 3600 3580 PRINT "."; 3590 GOTO 3610 3600 GOTO 3610 3610 PRINT 3620 IF X=0 THEN 3640 3630 PRINT " TOTAL ASSETS:$";T(J8)+X;"." 3640 PRINT 3650 NEXT J8 3660 PRINT" "; 3670 PRINT "$";J0;" ON THE FREE PARKING JACKPOT." 3680 PRINT 3690 PRINT 3700 IF I0=0 THEN 3720 3710 GOTO 590 3720 PRINT 3730 NEXT B3 3740 GOTO 520 3750 J5=INT(RND(1)*7)+1 3760 ON J5 GOTO 3770,3810,3870,3930,3990,4040,4070 3770 PRINT "GOTO JAIL!!!" 3780 J(B)=1 3790 P(B)=10 3800 GOTO 4090 3810 PRINT "COLLECT $50 FROM EVERYONE" 3820 FOR Y3=1TON 3830 LET T(Y3)= T(Y3)-50 3840 NEXT Y3 3850 T(B)=T(B)+N*50 3860 GOTO 4090 3870 PRINT "GO TO READING" 3880 LET P(B)=5 3890 LET P=5 3900 V0=1 3910 REM V0 TELLS THE PROGRAM TO GO TO READING 3920 RETURN 3930 PRINT "PAY ALL $50" 3940 FOR Y4=1 TO N 3950 T(Y4)= T(Y4)+50 3960 NEXT Y4 3970 T(B)=T(B)-N*50 3980 GOTO 4090 3990 Y2=INT(RND(1)*4)+1 4000 PRINT "PAY $";Y2*50 4010 T(B)=T(B)-Y2*50 4020 J0=J0+Y2*50 4030 GOTO 4090 4040 PRINT "GO DIRECTLY TO GO" 4050 P(B)=40 4060 GOTO 4090 4070 PRINT "TICKET OUT OF JAIL" 4080 F(B)=F(B)+1 4090 RETURN 4100 DATA MEDITERRANEAN,11,2,60,CC,2,BALTIC,11,4,60,IT,4 4110 DATA READING,9,25,200,ORIENTAL,12,6,100,CH,3 4120 DATA VERMONT,12,6,100,CONN.,12,8,120,JAIL,8 4130 DATAST. CHAS.,13,10,140,ELECTRIC WORKS,10,1,150,STATES 4140 DATA13,10,140,VIRGINIA,13,12,160,PENNS.RR.,9,25,200 4150 DATA ST.JAMES,14,14,180,CC,2,TENNESSEE,14,14,180 4160 DATA NEW YORK,14,16,200,FP,7,KENTUCKY,15,18,200 4170 DATA CH,3,INDIANA,15,18,220,ILLINOIS,15,20,240 4180 DATA B&O RR,9,25,200 4190 DATA ATLANTIC,16,22,260,VENTNOR 4200 DATA 16,22,260,WATER WORKS,10,1,150,M. GARDENS 4210 DATA 16,24,280,GOJAIL,6,PACIFIC,17,26,300,N.CAROLINA 4220 DATA 17,26,300,CC,2,PENNS. AVE.,17,28,320 4230 DATA SHORTLINE,9,25,200,CHANCE,3,PARKPLACE,18 4240 DATA 35,350,LT,5,BOARDWALK,18,50,400,GO,8 4250 DATA GO,8 4260 Z=0 4270 Z(3)=0 4280 Z(2)=0 4290 Z(1)=0 4300 IFU8=0THEN4340 4310 B9=E9 4320 P=E8 4330 GOTO 4360 4340 B9=B3 4350 P=P(B9) 4360 IF S(P)<11 THEN 4490 4370 IF P>4 THEN 4400 4380 LET I7=0 4390 GOTO 4410 4400 I7= P-4 4410 IF P>35 THEN 4440 4420 Q1= P+4 4430 GOTO 4450 4440 Q1=40 4450 FOR W1= I7 TO Q1 4460 IF S(W1) = S(P) THEN 4480 4470 GOTO 4520 4480 IF V(W1)= B9 THEN 4500 4490 RETURN 4500 Z=Z+1 4510 Z(Z)=W1 4520 NEXT W1 4530 E(B9)= E(B9)+1 4540 IF A(B9)=0 THEN 4570 4550 PRINT "I HAVE A MONOPOLY AND THE RENTS ARE DOUBLED" 4560 GOTO 4580 4570 PRINT "YOU NOW HAVE MONOPOLY. THE RENTS ARE DOUBLED" 4580 FOR Z2=1 TO 3 4590 R(Z(Z2))= 2*R(Z(Z2)) 4600 O(Z(Z2))=1 4610 NEXT Z2 4620 IF S(Z(1))<11 THEN 4640 4630 GOTO 4650 4640 RETURN 4650 GOSUB 4770 4660 U8=0 4670 RETURN 4680 FOR I1=1 TO 40 4690 IF S(I1)= S(B) THEN 4710 4700 GOTO 4750 4710 IF V(I1)= V9 THEN 4730 4720 RETURN 4730 Z=Z+1 4740 Z(Z)=I1 4750 NEXT I1 4760 GOTO 4570 4770 PRINT" DO ";O$;" WANT HOUSES NOW"; 4780 IF A(B9)=0 THEN 4820 4790 IF T(B9)>500 THEN 4880 4800 PRINT "? *NO*" 4810 RETURN 4820 INPUT Z$ 4830 IFLEFT$(Z$,1)="N"THEN4870 4840 IFLEFT$(Z$,1)="Y"THEN4900 4850 PRINT "YES OR NO"; 4860 GOTO 4820 4870 RETURN 4880 I3=1 4890 GOTO 4920 4900 PRINT "LOT, #OF HOUSES"; 4910 IF A(B)=0 THEN5120 4920 FOR I2= 1 TO 40 4930 IF V(I2)<>B9 THEN 4990 4940 IF O(I2)=0 THEN 4990 4950 IF B(I2)>4 THEN 4990 4960 GOTO 5050 4970 H=I2 4980 GOTO5250 4990 NEXT I2 5000 GOTO 5030 5010 IF I3> 5 THEN 5030 5020 GOTO 4920 5030 PRINT "?*NO*" 5040 RETURN 5050 IF T(B)>1700 THEN 5090 5060 IF B(I2)>5-INT(T(B)/350) THEN 5090 5070 H4=INT (T(B)/350) 5080 GOTO 5100 5090 H4= 5-B(I2) 5100 PRINT "?* YES ";H4;" ON ";P$(I2);"*" 5110 GOTO 5260 5120 INPUT H$,H5 5130 IFLEFT$(H$,1)="N"THEN4870 5140 IF H$="WHAT" THEN 9370 5150 IF H5>0 THEN 5190 5160 PRINT "A POSITIVE NUMBER PLEASE!" 5170 INPUT H5 5180 GOTO 5150 5190 FOR H=1 TO 40 5200 IF P$(H)= H$ THEN 5250 5210 NEXT H 5220 PRINT "WHAT LOT"; 5230 INPUT H$ 5240 GOTO 5130 5250 IF A(B)=0 THEN 5310 5260 H5=H4 5270 H=I2 5280 GOTO 5310 5290 PRINT "YOU DON'T OWN THAT" 5300 GOTO 4770 5310 H7=H5+B(H) 5320 GOSUB 5340 5330 GOTO 5590 5340 R(H)=L(H) 5350 IF H7<6 THEN 5390 5360 PRINT " YOU WILL HAVE TO HAVE 5 HOUSES (ONE HOTEL)" 5370 H5=H7-B(H) 5380 H7=5 5390 IF H7>0 THEN 5420 5400 PRINT "YOU CAN'T HAVE LESS THAN 0 HOUSES." 5410 GOTO 5570 5420 B(H)=0 5430 FOR H6= 1 TO H7 5440 B(H)=H6 5450 J=H 5460 IF B(H)=0 THEN 4870 5470 ON B(H) GOTO 5480,5500,5520,5540,5540 5480 R(J)= R(J)*2.5 5490 GOTO 5550 5500 R(J)=R(J)*3 5510 GOTO 5550 5520 R(J)= R(J)*2.3 5530 GOTO 5550 5540 R(J)=R(J)+185 5550 R(J)= 10* INT(R(J)/10 +.5) 5560 NEXT H6 5570 PRINT "THE RENT IS NOW $";R(J);"." 5580 RETURN 5590 C=INT((S(J)-10)/2+.5)*50 5600 IF H5=1 THEN 5630 5610 PRINT "THOSE WERE $";C;"EACH, MAKING $";H5*C;"." 5620 GOTO 5640 5630 PRINT "THAT WAS $";C;"." 5640 T(B9)= T(B9)- H5*C 5650 X(B9)=X(B9)+H5 5660 RETURN 5670 PRINT "ANOTHER"; 5680 GOTO 4780 5690 RETURN 5700 GOTO 4440 5710 PRINT "WHAT DO ";O$;" WANT TO MORTGAGE"; 5720 I3=1 5730 IF A(B)=0 THEN 5910 5740 IF T(B)>150 THEN 5860 5750 FOR I4= 1 TO 40 5760 IF V(I4)=B THEN 5780 5770 GOTO 5840 5780 IF O(I4)= I3 THEN 5840 5790 IF M(I4)=1 THEN 5840 5800 IF B(I4)<>0 THEN 5840 5810 PRINT "? *";P$(I4);"*" 5820 Z5=I4 5830 GOTO 6000 5840 NEXT I4 5850 IF I3=1 THEN 5890 5860 PRINT "? *NOTHING*" 5870 RETURN 5880 GOTO 6110 5890 I3=0 5900 GOTO 5750 5910 INPUT Z$ 5920 IF Z$="WHAT" THEN 9400 5930 IFLEFT$(Z$,3)<>"NOT"THEN5950 5940 RETURN 5950 FOR Z5=1 TO 40 5960 IF P$(Z5)=Z$ THEN 6000 5970 NEXT Z5 5980 PRINT "WHAT"; 5990 GOTO 5910 6000 IF B(Z5)>0 THEN 6120 6010 FOR X=1 TO 40 6020 IF S(X)<>S(Z5) THEN 6060 6030 IF B(X)=0 THEN 6060 6040 PRINT "THERE ARE HOUSES ON OTHER LOTS OF MONPOLY. YOU MUST SELL THEM." 6050 GOTO 5710 6060 NEXT X 6070 GOTO 6150 6080 M(Z5)=1 6090 N(B)= N(B)+1 6100 T(B)= T(B)+.5*C(Z5) 6110 GOTO 5710 6120 PRINT "THERE ARE HOUSES ON IT" 6130 GOTO 5710 6140 RETURN 6150 IF V(Z5)>B3THEN 6200 6160 IF V(Z5)<B3 THEN 6200 6170 IF M(Z5)=0 THEN 6190 6180 PRINT"IT ALREADY IS" 6190 GOTO 6080 6200 PRINT" YOU DON'T OWN THAT" 6210 GOTO 5720 6220 RETURN 6230 PRINT "UNMORTGAGE WHAT"; 6240 IF A(B)=0 THEN 6360 6250 IF T(B)<150 THEN 6340 6260 FOR E0= 1 TO 40 6270 IF V(E0)= B THEN 6290 6280 GOTO 6330 6290 IF M(E0)=0 THEN 6330 6300 PRINT "?*"; P$(E0);"*" 6310 E=E0 6320 GOTO 6480 6330 NEXT E0 6340 PRINT "? *NOTHING*" 6350 GOTO 6590 6360 INPUT Z$ 6370 IF Z$<>"WHAT" THEN 6410 6380 PRINT "TYPE 'NOTHING', A PROPERTY NAME, OR 'HOUSES' IF" 6390 PRINT "YOU WANT TO SELL THEM." 6400 GOTO 6360 6410 IFLEFT$(Z$,3)="NOT"THEN6590 6420 IF Z$="HOUSES" THEN 6600 6430 FOR E=1 TO 40 6440 IF P$(E)=Z$ THEN 6480 6450 NEXT E 6460 PRINT "WHAT"; 6470 GOTO 6360 6480 IF M(E)=1 THEN 6510 6490 PRINT "IT ISN'T MORTGAGED" 6500 GOTO 6230 6510 IF V(E)=B THEN 6540 6520 PRINT"YOU DON'T OWN IT" 6530 GOTO 6230 6540 M(E)=0 6550 N(B)= N(B)-1 6560 T(B)=T(B)-INT(.6*C(E)) 6570 PRINT "WITH INTEREST THAT WAS$";INT(.6*C(E)) 6580 IF N(B)>0 THEN 6230 6590 RETURN 6600 PRINT"LOT,# OF HOUSES"; 6610 INPUT Z$,E2 6620 IF E2>0 THEN 6650 6630 PRINT "INPUT A POSITIVE NUMBER" 6640 GOTO 6600 6650 IF Z$="NO" THEN6110 6660 GOTO 6700 6670 PRINT "TYPE IN THE NAME OF THE LOT THEN THE # OF HOUSES YOU ARE" 6680 PRINT"SELLING. TO SELL NONE TYPE 'NO'" 6690 GOTO 6600 6700 FOR E3=1 TO 40 6710 IF P$(E3)=Z$THEN 6760 6720 NEXT E3 6730 PRINT "WHAT LOT"; 6740 INPUT Z$ 6750 GOTO 6650 6760 B(E3)= B(E3)-E2 6770 X(B)=X(B)-E2 6780 IF B(E3)<0 THEN 6870 6790 H=E3 6800 H7=B(H) 6810 GOSUB 5340 6820 E4=INT((S(E3)-10)/2+.5)*25 6830 E4=E4*E2 6840 PRINT" YOU GET$";E4 6850 T(B)=T(B)+E4 6860 GOTO 6230 6870 PRINT "YOU DON'T HAVE THAT MANY" 6880 B(E3)=B(E3)+E2 6890 GOTO 6600 6900 GOTO 6230 6910 IF A7=1 THEN 7050 6920 IF E6=0 THEN 6960 6930 E6=E6+1 6940 IF E6<3 THEN 7090 6950 E6=1 6960 PRINT "CHANGES"; 6970 E6=0 6980 INPUT Z$ 6990 IF Z$<>"WHAT" THEN 7020 7000 PRINT "'YES', 'NO','NEVER',OR 'DELAY'( WILL ASK AGAIN IN THREE TURNS"; 7010 GOTO 6980 7020 IF Z$= "NEVER" THEN 7040 7030 GOTO 7060 7040 A7=1 7050 RETURN 7060 IF Z$="YES" THEN 7170 7070 IF Z$<>"DELAY" THEN 7110 7080 E6=1 7090 PRINT 7100 RETURN 7110 IF Z$="NO" THEN 7090 7120 PRINT "TYPE 'YES', OR 'NO' IF YOU WANT TO MAKE CHANGES OR NOT" 7130 PRINT "OR 'DELAY' TO HAVE IT ASK YOU LATER" 7140 GOTO 6960 7150 RETURN 7160 IF T(B9)> 300 THEN 4880 7170 GOTO 7210 7180 REM THIS PART WILL TRANSFERR OWNERSHIP OF A PROPERTY 7190 REM TO SOMEONE ELSE AND TRANSFER SOME MONEY TO 7200 REM TO CORRRESPOND 7210 PRINT "('WHAT,A,0' FOR INST.)"; 7220 INPUT Z$,A$,A 7230 IF Z$="NEW PLAYER" THEN 10120 7240 IF A$<>"YOU" THEN 7260 7250 A$="COMPUTER" 7260 IF Z$="NEW PLAYER" THEN 10120 7270 IF Z$="WHAT" THEN 9420 7280 IF Z$= "NO" THEN 8240 7290 IF Z$="QUIT" THEN 7590 7300 IF Z$="JAIL CARD" THEN 7590 7310 IF Z$="JAILCARD" THEN 7590 7320 IF A$<>"BANK" THEN 7360 7330 GOTO 7590 7340 PRINT" THAT'S ILLEGAL!" 7350 GOTO 7210 7360 FOR E8=1 TO 40 7370 IF P$(E8)= Z$ THEN 7460 7380 NEXT E8 7390 PRINT "WHAT LOT"; 7400 INPUT Z$ 7410 IF Z$<>"WHAT"THEN 7440 7420 PRINT"TYPE THE PROPERTY NAME OR 'NO'" 7430 GOTO7400 7440 IF Z$="NO" THEN 6960 7450 GOTO 7360 7460 IF S(E8)<9THEN 8250 7470 T8=0 7480 IF V(E8)=0 THEN 8270 7490 IF B(E8)>0 THEN 7570 7500 FOR I2= 1 TO 40 7510 IF S(I2)<>S(E8) THEN 7550 7520 IF B(I2)=0 THEN 7550 7530 PRINT "THERE ARE HOUSES ON OTHER LOTS OF MONOPOLY.YOU MUST SELL THEM." 7540 GOTO 6960 7550 NEXT I2 7560 GOTO 7590 7570 PRINT "THERE ARE HOUSES ON IT" 7580 GOTO 7210 7590 T8=0 7600 FOR E9= 1 TO N 7610 IF N$(E9)=A$ THEN 7630 7620 GOTO 7640 7630 T8=T8+1 7640 NEXT E9 7650 ON T8+1 GOTO 7770,7860,7660,7660,7660,7660,7660,7660,7660,7660 7660 PRINT "WHICH PLAYER NO.('-1' FOR INSTRUCTIONS)"; 7670 INPUT E9 7680 IF E9>0 THEN 7720 7690 PRINT "TYPE THE PLAYER NO. OF THE PIECE. BECAUSE I" 7700 PRINT "PLAY MORE THAN ONE PLAYER, I MUST KNOW WHICH"; 7710 GOTO 7670 7720 IF E9>N THEN 7660 7730 IF A(E9)=1 THEN 7760 7740 PRINT"I AM NOT ";N$(E9) 7750 GOTO 7660 7760 GOTO 7860 7770 PRINT "WHO"; 7780 INPUT A$ 7790 IFA$="NO" THEN8290 7800 IF A$<>"WHAT" THEN 7820 7810 PRINT "TYPE NEW OWNER'S NAME OR 'NO'"; 7820 GOTO 7590 7830 REM THIS IS FOR JAILCARDS 7840 GOSUB 9610 7850 GOTO 6960 7860 GOTO 7870 7870 FOR E9=1 TO N 7880 IF N$(E9)<>A$ THEN 7900 7890 GOTO 7910 7900 NEXT E9 7910 B=E9 7920 IF Z$="JAILCARD" THEN 7830 7930 IF Z$<>"QUIT" THEN 7970 7940 B=E9 7950 GOSUB 9240 7960 GOTO 6960 7970 U5=V(E8) 7980 IF A$="BANK" THEN 8090 7990 IF A(V(E8))=1 THEN 8420 8000 IFA(E9)=1THEN8360 8010 T(V(E8))= T(V(E8))+A 8020 IF S(E8)<>9 THEN 8050 8030 W(V(E8))=W(V(E8))-1 8040 W(E9)=W(E9)+1 8050 IF S(E8)<>10 THEN 8080 8060 U(V(E8))=U(V(E8))-1 8070 U(E9)=U(E9)+1 8080 LET V(E8)= E9 8090 T(E9)= T(E9)-A 8100 IF A$="BANK" THEN 6960 8110 IF O(E8)=1 THEN 8130 8120 GOTO 8210 8130 FOR O9= 1 TO 40 8140 IF S(O9)=S(E8) THEN 8160 8150 GOTO 8180 8160 LET R(O9)= R(O9)/2 8170 O(O9)=0 8180 NEXT O9 8190 PRINT "NO LONGER A MONOPOLY THERE" 8200 LET E(U5)= E(U5)-1 8210 U8=1 8220 P=E8 8230 GOSUB 4260 8240 GOTO 6960 8250 PRINT" YOU FOOL, YOU CANT OWN ";Z$;"!!!!" 8260 GOTO 7210 8270 PRINT "IT ISN'T OWNED" 8280 GOTO 7210 8290 GOTO 6960 8300 REM THIS BELONGS TO LINES 1049-- 8310 R(P(B))=INT(RND(1)*6+1)*U3 8320 W9=P(B) 8330 W8=V(P(B)) 8340 GOTO 2130 8350 W8=V(P(B)) 8360 IF T(E9)> 200+ C(E8) THEN8390 8370 PRINT "I DONT ACCEPT" 8380 GOTO 7170 8390 IF A> 150+C(E8) THEN 8370 8400 PRINT "I ACCEPT" 8410 GOTO 8010 8420 IF O(E8)=1 THEN 8520 8430 IF A>2*C(E8) THEN 590 8440 IF S(O1)<>S(E8) THEN 8460 8450 IF V(O1)<>E9 THEN 8500 8460 NEXT O1 8470 IF T(V(E8))>200 THEN 8520 8480 IF A<C(E8)+200 THEN 8520 8490 GOTO 8560 8500 IF T(V(E8))<200 THEN 8540 8510 GOTO 8520 8520 PRINT "I WON'T SELL" 8530 GOTO 7170 8540 IF A> 1.5* C(E8) THEN 8560 8550 GOTO 8520 8560 PRINT "IT IS A DEAL" 8570 GOTO 8010 8580 PRINT " THIS PROGRAM WILL HANDLE UP TO TEN PLAYERS" 8590 PRINT "OR PIECES. IT WILL DO ALL ROUTINE JOBS SUCH AS" 8600 PRINT"ROLLING THE DICE,MOVING PIECES, AND INFORMING THE" 8610 PRINT "PLAYERS OF ALL OPTIONS. IT WILL ACTUALLY" 8620 PRINT"PLAY THE GAME MAKING THE DECISIONS OF ANY NUMBER OF PLAYERS." 8630 PRINT"WANT THE COMPUTER TO DO THIS TYPE 'YOU' WHEN IT ASKS" 8640 PRINT"FOR THE NAME." 8650 PRINT "OF PLAYERS. TO DO THIS TYPE 'YOU' AS THE" 8660 PRINT " NAME OF THAT PLAYER." 8670 PRINT 8680 PRINT"THIS PROGRAM IS FAIRLY SELF-EXPLANATORY, HOWEVER THE FOLLOWING" 8690 PRINT "THINGS MUST BE KEPT IN MIND:" 8700 PRINT 8710 PRINT" 1. IF A QUESTION IS NOT UNDERSTOOD,TYPING 'WHAT' WILL" 8720 PRINT "USUALLY GIVE INSTRUCTIONS. HOWEVER SOME QUESTIONS WILL" 8730 PRINT "ASK FOR MORE THAN ONE THING AND THIS NUMBER OF THINGS MUST" 8740 PRINT "BE TYPED SEPERATED BY COMMAS. ALSO CARE MUST BE " 8750 PRINT "TAKEN THAT ALL INPUTS ARE EITHER NUMERIC OR ALPHABETIC" 8760 PRINT "AS ASKED FOR. EXAMPLE:" 8770 PRINT " LOT, # OF HOUSES? WHAT,0" 8780 PRINT "WILL GIVE INSTRUCTIONS." 8790 PRINT " 2. THE COMPUTER WILL OFTEN ASK IF YOU WANT CHANGES" 8800 PRINT "OR A SUMMARY. THE CHANGES ROUTINE WILL BE DESCRIBED" 8810 PRINT "BELOW, BUT IF YOU DON'T WANT TO BE BOTHERED WIL THE" 8820 PRINT "EVERYTIME, TYPE 'NEVER' TO HAVE IT STOP ASKING" 8830 PRINT "COMPLETELY, OR 'DELAY' TO HAVE IT ASK IN THREE" 8840 PRINT "TURNS. FOR SUMMARY TYPE 'AUTO' AND IT WILL " 8850 PRINT "GIVE A SUMMARY EVERY 5 TURNS, WITHOUT ASKING YOU AGAIN" 8860 PRINT" 3. TO SELL PROPERTIES OR ADD AND DROP PLAYERS USE THE " 8870 PRINT "CHANGES ROUTINE. TYPE 'YES' WHEN IT ASKS 'CHANGES?'" 8880 PRINT "TYPE 'YES' THEN TYPE 'WHAT,A,0' FOR COMPLETE INSTRUCTIONS" 8890 PRINT " 4. FIVE HOUSES ARE EQUIVALENT TO ONE HOTEL." 8900 PRINT " 5. IF YOU TYPE 'YOU' FOR ALL THE NAMES" 8910 PRINT "THE COMPUTER WILL PLAY ITSELF WITHOUT" 8920 PRINT "ASKING YOU FOR ANYTHING. TYPING CONTROL-O" 8930 PRINT "WILL MAKE THE GAME CONTINUE WITHOUT " 8940 PRINT "TYPE OUT, AND CONTROL-C THEN CONT WILL START THE" 8950 PRINT " TYPE OUT AGAIN WITH THE GAME VERY FAR ALONG." 8960 PRINT " 6. TO SELL HOUSES, WAIT UNTIL THE COMPUTER ASKS" 8970 PRINT "UNMORTGAGE WHAT? AND TYPE 'HOUSES' THEN ANSWER" 8980 PRINT "ANSWER FURTHAR QUESTIONS." 8990 RETURN 9000 PRINT 9010 IF N7=1 THEN 9200 9020 IF A(B)=0 THEN 9100 9030 FOR I2= 1 TO N 9040 IF Q(I2)=1 THEN 9060 9050 IF A(I2)=0 THEN 9080 9060 NEXT I2 9070 GOTO 9200 9080 PRINT "I AM $";ABS(T(B));"IN THE RED. SHOULD I QUIT"; 9090 GOTO 9110 9100 PRINT "YOU ARE $";ABS(T(B));"IN THE HOLE. WILL YOU QUIT"; 9110 INPUT Z$ 9120 IFLEFT$(Z$,1)="Y"THEN9240 9130 IFLEFT$(Z$,1)="N"THEN9190 9140 IFLEFT$(Z$,1)="L"THEN9200 9150 PRINT "TYPE 'YES' TO QUIT OR 'NO' TO KEEP GOING" 9160 PRINT "AND PAYING 5% INTEREST ON THE NEGATIVE AMMOUNT" 9170 PRINT "OR 'LATER' TO NOT QUIT NOW BUT KEEP THE COMPUTER ASKING" 9180 GOTO 9110 9190 N7=1 9200 I1=INT(ABS(.05*T(B)+ .5)) 9210 PRINT "5% INTEREST IS $";I1 9220 T(B)= T(B) - I1 9230 RETURN 9240 Q(B)=1 9250 T(B)=0 9260 FOR I2=1 TO 40 9270 IF V(I2)<>B THEN 9330 9280 V(I2)=0 9290 M(I2)=0 9300 B(I2)=0 9310 R(I2)=L(I2) 9320 O(I2)=0 9330 NEXT I2 9340 N$(B)=" " 9350 RETURN 9360 GOTO 6360 9370 PRINT "TYPE PROPERTY NAME THEN NUMBER OF HOUSES OR" 9380 PRINT "'NO,0' TO DO NOTHING" 9390 GOTO 5100 9400 PRINT "TYPE A PROPERTY NAME OR 'NOTHING' "; 9410 GOTO 5910 9420 PRINT " THIS ROUTINE CAN DO SEVERAL THINGS:" 9430 PRINT " 1. TO SELL PROPERTY FROM ONE PERSON TO ANOTHER" 9440 PRINT "TYPE THE PROPERTY NAME,THE NEW OWNER'S NAME, THEN" 9450 PRINT "THE AMOUNT IT IS BEING SOLD FOR." 9460 PRINT " 2. TO SELL A JAILCARD, TYPE 'JAILCARD',THE NEW OWNERS" 9470 PRINT "NAME, THEN THE AMOUNT IT IS BEING SOLD FOR." 9480 PRINT "IF NEEDED THE COMPUTER WILL ASK WHO IT CAME FROM." 9490 PRINT " 3. FOR EITHER OF THE ABOVE,'YOU' CAN BE USED AS THE" 9500 PRINT "NEW OWNER'S NAME,OR THE COMPUTERS PROPERTY CAN BE USES" 9510 PRINT "THE COMPUTER WILL THEN DECIDE IF IT WILL ACCEPT YOUR OFFER," 9520 PRINT "AND TELL YOU IF IT WILL BUY OR SELL." 9530 PRINT " 4. TO ADD A NEW PLAYER TYPE:'NEW PLAYER',HIS NAME,'0'" 9540 PRINT " 5. TO DROP A PLAYER TYPE:'QUIT',HIS NAME,'0'" 9550 PRINT 9560 GOTO 7210 9570 B=E9 9580 REMARK THIS IS FOR QUITING FORM CHANGE ROUTINE 9590 GOSUB 9240 9600 GOTO 6960 9610 REM THIS IS FOR CHANGING JAILCARDS 9620 IF N<>2 THEN 9650 9630 T0=3-E9 9640 GOTO 9880 9650 PRINT "WHO FROM"; 9660 INPUT Z$ 9670 IF Z$<>"WHAT" THEN 9710 9680 PRINT"TYPE THE PERSON'S NAME FROM WHOM THE CARD" 9690 PRINT" CAME.";N$(E9);" HAD IT. WHO HAS IT NOW"; 9700 GOTO 9660 9710 IF Z$<>"YOU" THEN 9830 9720 IF W8=1 THEN 9820 9730 PRINT "WHICH #"; 9740 PRINT "('0' FOR INST.)"; 9750 INPUT O3 9760 IF O3>0 THEN 9790 9770 PRINT "I AM PLAYING SEVERAL PLAYERS. TYPE NO. OF ONE YOU WANT"; 9780 GOTO 9750 9790 IF O3>N THEN 9770 9800 T0=O3 9810 GOTO 9880 9820 Z$="COMPUTER" 9830 FOR T0= 1 TO 40 9840 IF N$(T0)= Z$ THEN 9880 9850 NEXT T0 9860 PRINT "WHO "; 9870 GOTO 9660 9880 IF A(T0)=0 THEN 9960 9890 IF A>45 THEN 9920 9900 IF A<30 THEN 9940 9910 GOTO 9940 9920 PRINT" OK" 9930 GOTO 10070 9940 PRINT" NO" 9950 RETURN 9960 IF A(E9)=0 THEN 10010 9970 IF A>50 THEN 9940 9980 IF F(E9)=1 THEN 9940 9990 IF T(E9)<200 THEN 9940 10000 GOTO9920 10010 IF F(T0)=1 THEN 9940 10020 IF A(T0)=0 THEN 10050 10030 IF A> 45 THEN 9940 10040 GOTO 10060 10050 PRINT "HE DOESN'T HAVE ONE" 10060 RETURN 10070 F(T0)= F(T0)-1 10080 F(E9)=F(E9)+1 10090 T(T0)=T(T0)+A 10100 T(E9)=T(E9)-A 10110 RETURN 10120 REM THIS ALLOWS A NEW PLAYER 10130 IF A$="YOU" THEN 10210 10140 FOR O9= 1 TO N 10150 IF N$(O9)=A$ THEN 10180 10160 NEXT O9 10170 GOTO 10210 10180 PRINT "INPUT A NAME NOT ALREADY USED"; 10190 INPUT A$ 10200 GOTO 10140 10210 FORO9= 1 TO N 10220 IF Q(O9)=1 THEN 10370 10230 NEXT O9 10240 IF N<10 THEN 10270 10250 PRINT "TOO MANY PLAYERS. SOMEONE WILL HAVE TO QUIT." 10260 GOTO 6960 10270 N=N+1 10280 Q(N)=0 10290 T(N)=1500 10300 IF A$<>"YOU"THEN 10350 10310 N$(N)="COMPUTER" 10320 W7=W7+1 10330 A(N)=1 10340 GOTO 6960 10350 N$(N)=A$ 10360 GOTO 6960 10370 REM THIS IS FOR NEW PLAYER 10380 N$(O9)= A$ 10390 Q(O9)=0 10400 P(O9)=0 10410 T(O9)=1500 10420 IF N$(9)<>"YOU" THEN 10460 10430 N$(O9)="COMPUTER" 10440 W7=W7+1 10450 A(O9)=1 10460 GOTO 6960 10470 END O9)=1500 10420 IF N$(9)<>"YOU" THEN 10460 10430 N$(O9)="COM[/spoiler] | labelminimizesubject |